# D:\dazuoye\app\views\sales_regional.py

from flask import Blueprint, jsonify
from app.data_loader import regional_sales_data  # 从数据模块导入所需数据

# 1. 创建蓝图对象
regional_bp = Blueprint('sales_regional', __name__)


# 2. 在蓝图上注册路由
@regional_bp.route('/api/sales/regional_heatmap', methods=['GET'])
def get_regional_heatmap():
    """API: 地理热力图 (按销售量)"""
    if regional_sales_data is None:
        return jsonify({"error": "区域销售数据未能加载"}), 500

    # 按'区域'分组，计算每个区域的总'销售量'
    # 注意：地理热力图通常需要省份或城市的名称和对应的数值
    # 我们假设'区域'列包含的是可以直接在地图上使用的名称（如：'广东', '四川'）
    heatmap_data = regional_sales_data.groupby('区域')['销售量'].sum()

    # 格式化为前端地图库喜欢的数据格式 (通常是对象数组)
    result = [
        {"name": region, "value": int(sales)} for region, sales in heatmap_data.items()
    ]
    return jsonify(result)


@regional_bp.route('/api/sales/regional_growth', methods=['GET'])
def get_regional_growth():
    """API: 区域销售增长率地图"""
    if regional_sales_data is None:
        return jsonify({"error": "区域销售数据未能加载"}), 500

    # 按'区域'分组，计算每个区域的平均'增长率%'
    growth_data = regional_sales_data.groupby('区域')['增长率%'].mean()

    # 格式化数据
    result = [
        {"name": region, "value": round(growth, 2)} for region, growth in growth_data.items()
    ]
    return jsonify(result)